#ifndef MYREQUESTHANDLER_H
#define MYREQUESTHANDLER_H


#include <../httpserver/httprequesthandler.h>
#include <../httpserver/httprequest.h>
#include <../httpserver/httpresponse.h>

using namespace stefanfrings;

class MyRequestHandler : public HttpRequestHandler {
    Q_OBJECT
    Q_DISABLE_COPY(MyRequestHandler)
public:
    MyRequestHandler(QObject* parent = nullptr) : HttpRequestHandler(parent) {}

    void service(HttpRequest& request, HttpResponse& response) override {
        // 1. 获取请求信息
        QByteArray method = request.getMethod(); // 请求方法（GET/POST等）
        QByteArray path = request.getPath();     // 请求路径（如 "/api/test"）
        QByteArray body = request.getBody();     // 请求体数据
        QByteArray param = request.getParameter("key"); // 获取URL或表单参数

        // 2. 生成回复
        response.setStatus(200, "OK"); // 设置状态码（默认200，可省略）
        response.setHeader("Content-Type", "text/plain; charset=UTF-8"); // 设置响应头

        // 构建响应内容（根据请求信息动态生成）
        QByteArray responseBody;
        responseBody.append("Received request:\n");
        responseBody.append("Method: " + method + "\n");
        responseBody.append("Path: " + path + "\n");
        if (!param.isEmpty()) {
            responseBody.append("Param 'key': " + param + "\n");
        }

        // 发送响应（第二个参数为true表示这是最后一部分数据）
        response.write(responseBody, true);
    }
};

#endif // MYREQUESTHANDLER_H
